package model.service;

import java.util.List;

import model.dao.IPsicologoDAO;
import model.entity.Psicologo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

/**
 * 
 * Psicologo Service
 * 
 * @author Alex
 * 
 */
@Service(value = "psicologoService")
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class PsicologoService implements IPsicologoService {

	// PsicologoDAO is injected...
	@Autowired
	IPsicologoDAO psicologoDAO;

	/**
	 * Add Psicologo
	 * 
	 * @param Psicologo
	 *            psicologo
	 */
	@Transactional(readOnly = false)
	@Override
	public void addPsicologo(Psicologo psicologo) {
		getPsicologoDAO().addPsicologo(psicologo);
	}

	/**
	 * Delete Psicologo
	 * 
	 * @param Psicologo
	 *            psicologo
	 */
	@Transactional(readOnly = false)
	@Override
	public void deletePsicologo(Psicologo psicologo) {
		getPsicologoDAO().deletePsicologo(psicologo);
	}

	/**
	 * Update Psicologo
	 * 
	 * @param Psicologo
	 *            psicologo
	 */
	@Transactional(readOnly = false)
	@Override
	public void updatePsicologo(Psicologo psicologo) {
		getPsicologoDAO().updatePsicologo(psicologo);
	}

	/**
	 * Get Psicologo
	 * 
	 * @param int Psicologo Id
	 */
	@Override
	public Psicologo getPsicologoById(int id) {
		return getPsicologoDAO().getPsicologoById(id);
	}

	@Override
	public Psicologo verificaPsicologo(String login, String senha) {
		return getPsicologoDAO().verificaPsicologo(login, senha);
	}
	
	/**
	 * Get Psicologo List
	 * 
	 */
	@Override
	public List<Psicologo> getPsicologos() {
		return getPsicologoDAO().getPsicologos();
	}

	/**
	 * Get Psicologo DAO
	 * 
	 * @return IPsicologoDAO - Psicologo DAO
	 */
	public IPsicologoDAO getPsicologoDAO() {
		return psicologoDAO;
	}

	/**
	 * Set Psicologo DAO
	 * 
	 * @param IPsicologoDAO
	 *            - Psicologo DAO
	 */
	public void setPsicologoDAO(IPsicologoDAO psicologoDAO) {
		this.psicologoDAO = psicologoDAO;
	}
}
